package io.geekidea.boot.shop.service.base.api;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.shop.dto.GradeLevelDto;
import io.geekidea.boot.shop.entity.GradeLevel;
import io.geekidea.boot.shop.query.app.AppGradeLevelQuery;
import io.geekidea.boot.shop.query.web.GradeLevelQuery;
import io.geekidea.boot.shop.vo.app.AppGradeLevelVo;
import io.geekidea.boot.shop.vo.web.GradeLevelVo;


/**
 * 11个等级 服务接口
 *
 * @author geekidea
 * @since 2024-10-27
 */
public interface GradeLevelService extends IService<GradeLevel> {

    /**
     * 添加11个等级
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addGradeLevel(GradeLevelDto dto);

    /**
     * 修改11个等级
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updateGradeLevel(GradeLevelDto dto);

    /**
     * 删除11个等级
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteGradeLevel(Long id);

    /**
     * 11个等级详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    GradeLevelVo getGradeLevelById(Long id);

    /**
     * 11个等级分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<GradeLevelVo> getGradeLevelPage(GradeLevelQuery query);

    /**
     * App11个等级详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppGradeLevelVo getAppGradeLevelById(Long id);

    /**
     * App11个等级分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppGradeLevelVo> getAppGradeLevelPage(AppGradeLevelQuery query);

}
